// Thanks: http://extjs.com/forum/showthread.php?t=31989

/**
 * @class Ext.ux.form.Spacer
 * @extends Ext.BoxComponent Utility spacer class.
 * @constructor
 * @param {Number}
 *            height (optional) Spacer height in pixels (defaults to 22).
 */
Ext.ux.form.Spacer = Ext.extend(Ext.BoxComponent, {
			height : 22,
			autoEl : 'div' // thanks @jack =)
		});

Ext.reg('Ext.ux.form.Spacer', Ext.ux.form.Spacer);

// 关闭TabPanel标签
Ext.ux.TabCloseMenu = function() {
	var tabs, menu, ctxItem;
	this.init = function(tp) {
		tabs = tp;
		tabs.on('contextmenu', onContextMenu);
	};
	function onContextMenu(ts, item, me) {
		if (!menu) { // create context menu on first right click
			menu = new Ext.menu.Menu([{
				id : tabs.id + '-close',
				text : '关闭当前标签',
//				iconCls : "closetabone",
				handler: function() {
					tabs.remove(ctxItem);
					ctxItem.destory();
				}
			}, {
				id: tabs.id + '-close-others',
				text: '除此之外全部关闭',
//				iconCls : "closetaball",
				handler: function() {
					tabs.items.each(function(item) {
						if (item.closable && item != ctxItem) {
							tabs.remove(item);
						}
					});
				}
			}]);
		}
		ctxItem = item;
		var items = menu.items;
		items.get(tabs.id + '-close').setDisabled(!item.closable);
		var disableOthers = true;
		tabs.items.each(function() {
			if (this != item && this.closable) {
				disableOthers = false;
				return false;
			}
		});
		items.get(tabs.id + '-close-others').setDisabled(disableOthers);
		menu.showAt(me.getXY());
	}
};